Skip to content

CNTRLPLANE-3843: [release-4.22] feat: ho,cpo,hcco: expose console URL#9056

Closed
csrwng wants to merge 2 commits into
openshift:release-4.22from
csrwng:backport-9008-release-4.22
Closed

CNTRLPLANE-3843: [release-4.22] feat: ho,cpo,hcco: expose console URL#9056
csrwng wants to merge 2 commits into
openshift:release-4.22from
csrwng:backport-9008-release-4.22

Conversation

@csrwng

@csrwng csrwng commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Backport of #9008 to release-4.22.

  • Expose the console URL in HostedCluster and HostedControlPlane status by reading it from the guest cluster's console configuration
  • Add ConfigOperatorReconciliationSucceeded and ValidHostedClusterStatus conditions
  • Include hcpstatus controller in the allControllers list so it actually starts

Conflict resolution notes

  • reconcile_legacy.go does not exist on release-4.22 (controller was not yet split); the equivalent changes (ConsoleURL propagation, ValidHostedClusterStatus condition) are applied directly in hostedcluster_controller.go
  • test/e2e/v2/tests/hosted_cluster_health_test.go does not exist on release-4.22 (v2 test framework not present on this branch); dropped from backport
  • Version gates in test/e2e/util/util.go adjusted from Version423/Version424 to Version422 since the feature is being introduced in 4.22
  • Version constants Version50, Version424, Version423 not needed on this branch

🤖 Generated with Claude Code

stevekuznetsov and others added 2 commits July 22, 2026 16:34
Service operators would like to expose the console URL to users, and
users control how the console URL actually gets routed by changing
config in the cluster, so we need to read it from the cluster for the
correct source of truth.

Signed-off-by: Steve Kuznetsov <stekuznetsov@microsoft.com>
hcpstatus.Setup was removed from controllerFuncs because its
constructor now needs capabilities, but allControllers() builds
its list by iterating controllerFuncs. This meant the hcpstatus
controller name was never in o.Controllers, making the special-case
in the Run loop unreachable and the controller never started.

Signed-off-by: Cesar Wong <cewong@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 22, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 22, 2026

Copy link
Copy Markdown

@csrwng: This pull request references CNTRLPLANE-3843 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the bug to target either version "4.22." or "openshift-4.22.", but it targets "5.0.0" instead.

Details

In response to this:

Summary

Backport of #9008 to release-4.22.

  • Expose the console URL in HostedCluster and HostedControlPlane status by reading it from the guest cluster's console configuration
  • Add ConfigOperatorReconciliationSucceeded and ValidHostedClusterStatus conditions
  • Include hcpstatus controller in the allControllers list so it actually starts

Conflict resolution notes

  • reconcile_legacy.go does not exist on release-4.22 (controller was not yet split); the equivalent changes (ConsoleURL propagation, ValidHostedClusterStatus condition) are applied directly in hostedcluster_controller.go
  • test/e2e/v2/tests/hosted_cluster_health_test.go does not exist on release-4.22 (v2 test framework not present on this branch); dropped from backport
  • Version gates in test/e2e/util/util.go adjusted from Version423/Version424 to Version422 since the feature is being introduced in 4.22
  • Version constants Version50, Version424, Version423 not needed on this branch

🤖 Generated with Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 09d751b1-f754-4021-95e9-68db99be5758

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@openshift-ci
openshift-ci Bot requested review from devguyio and jparrill July 22, 2026 14:39
@openshift-ci openshift-ci Bot added the area/api Indicates the PR includes changes for the API label Jul 22, 2026
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: csrwng

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added area/cli Indicates the PR includes changes for CLI approved Indicates a PR has been approved by an approver from all required OWNERS files. area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/documentation Indicates the PR includes changes for documentation area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release area/testing Indicates the PR includes changes for e2e testing and removed do-not-merge/needs-area labels Jul 22, 2026
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@csrwng: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jparrill jparrill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, a couple of things:

Verify is failing

The Verify GitHub Action is failing — looks like it's related to aggregated-docs generation. Might need a make docs regeneration on this branch.

ConfigOperatorReconciliationSucceeded is never set on release-4.22

This PR defines the condition (hostedcluster_conditions.go:209), adds it to the HC controller propagation list (hostedcluster_controller.go:834), and expects it True in ExpectedHCConditions (conditions.go). But the resources controller code that actually sets this condition on HCP.Status.Conditions (resources.go:971 on main, commit da62d22d723) was never backported to release-4.22.

The consequence: the HC controller won't find it on the HCP and will synthesize Unknown ("Condition not found in the HCP"). The e2e IsLessThan(Version422) gate returns false for 4.22 clusters, so the condition IS expected as True. Expected True, actual Unknown → e2e test failures on fresh 4.22 installs.

Either (a) backport the resources controller change that sets ConfigOperatorReconciliationSucceeded, or (b) drop it from this PR since it's not functionally related to the console URL feature.

@csrwng

csrwng commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

/close
Will create another backport based on what eventually merges in main.

@openshift-ci openshift-ci Bot closed this Jul 23, 2026
@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@csrwng: Closed this PR.

Details

In response to this:

/close
Will create another backport based on what eventually merges in main.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/api Indicates the PR includes changes for the API area/cli Indicates the PR includes changes for CLI area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/documentation Indicates the PR includes changes for documentation area/hypershift-operator Indicates the PR includes changes for the hypershift operator and API - outside an OCP release area/testing Indicates the PR includes changes for e2e testing jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants